The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Data analysts and other computer users often interact and request data from computer-based databases containing large collections of data objects. In many instances, the data objects stored in such databases include information from disparate sources and may represent a variety of real-world information. In order to analyze large and varied collections of data objects, analysts often desire to find patterns of interest based on particular relationships exhibited between the data objects. For example, given a database containing a large number of interrelated data objects representing individuals, merchants, financial institutions, and payment transactions, an analyst may desire all instances of data objects corresponding to a particular set of individuals making a payment to a merchant using a particular bank account.
In order to find patterns of interest in a data object collection stored in a database, analysts may formulate queries that correspond to desired data object patterns. However, formulating queries that represent data object patterns presents a number of challenges. For example, accurately specifying a query that may represent a number of relationships between data objects and properties of those data objects is often a cumbersome and error-prone task. Further, while an analyst may intuitively understand the data object relationships required to express a desired data object pattern, the analyst may not always be fluent in a query language required to specify the pattern to a query engine. What is needed is an intuitive mechanism for data analysts and other computer users to formulate queries of arbitrary complexity representing patterns over collections of data objects.